1. Field of the Invention
The present invention relates to a distributed computing system for executing application programs that communicate with one another.
2. Description of Related Art
In a distributed computing system where several computers are linked by a network, "server" computers store data files or operate peripheral devices such as printers which may be accessed by application programs running on "client" computers. In peer-to-peer networks each computer may act as either a server, a client or as both client and server. When an application program seeks to access a data file stored on a remote computer, an application program has to know how to locate and read or write to that file. Thus the application program must know, for example, which server computer stores the file and the name and directory of the file and the manner in which the data file is formatted. The application program may also have to know how to navigate the network to access that data file and how to communicate with the operating system employed by the server computer storing the data file.
The requirement for so much intelligence on the part of application programs seeking to access remote files makes it difficult for software designers to construct, modify and maintain the various major software components forming a distributed computing system. This is particularly true for an evolving peer-to-peer environment in which computer platforms, application programs and data files are frequently added or modified. While it would be beneficial to be able to assemble a software package for a custom distributed computing system from high level "off-the-shelf" application programs, the need to coordinate data transfer within the particular network environment in which they operate makes it difficult to do so without modifying the application programs. Also a change to any one application program, particularly in the manner in which it structures or locates a data file normally requires a programming change to all other application programs accessing that data file. Thus distributed data processing systems are often developed as custom packages for the specific network on which they are to be implemented, rather than assembled form "off-the-shelf" application programs, and subsequent changes to such systems must be carefully coordinated with the system developer.
What is needed is a system allowing application programs executed by various computer platforms interconnected through a network to access data files and to communicate with one another in a standardized fashion regardless of the nature of the network, regardless the nature of the various platforms, and regardless of where each application program or data file is located.